from grpc_tools import protoc
import importlib.resources as resources  # 替代 pkg_resources，避免弃用警告
from pathlib import Path

# 1) 标准 google/protobuf/* 的路径
proto_include = resources.files('grpc_tools').joinpath('_proto')

# 2) 你的 src 目录（因为你传的 proto 是以 ./src/... 开头）
here = Path(__file__).resolve()
src_dir = here.parents[2]  # src/play_with_pybullet/grpc_env/grpc_code_generator.py -> parents[2] == ./src

# 3) 以 src 为前缀构造 proto 的“相对路径”，这样 -I./src 能精确覆盖它
proto_rel = Path('play_with_pybullet/grpc_env/arm_env.proto')
proto_abs = src_dir / proto_rel

# 4) 代码输出到 src（和常见布局一致）
args = [
    'grpc_tools.protoc',
    f'-I{proto_include}',
    f'-I{src_dir}',            # 关键：覆盖 ./src
    '--python_out', str(src_dir),
    '--grpc_python_out', str(src_dir),
    '--mypy_out', str(src_dir),
    str(proto_abs),
]

rc = protoc.main(args)
if rc != 0:
    raise SystemExit(f'protoc 生成失败，返回码={rc}')
print('代码生成成功！')
